【Inforamtica CIH】データハブのデータ保持期間を過ぎてしまった場合の挙動を検証してみた
はじめに
こんにちは、データ事業本部の渡部です。
今回はInformaticaのCloud Integration Hub(以降、CIH)のデータコンシュームが失敗したあと、データ保持期間を過ぎてしまった場合の挙動を確認してみました。
CIHはデータハブのデータ自動削除機能を有しており、このあたりの挙動を押さえておかないと、障害発生時のリカバリで慌てることとなってしまいます。
未来の憂いを無くすため、今回この検証をしてみます。
結論
結論としてはデータ保持期間を過ぎたあとに、CIHのサブスクリプションを実行することではデータを再取得することは不可能です。
それもそのはず、データが保持期間を過ぎれば文字通りデータはハブに「保持」されず、「削除」されてしまいます。
そのためデータロストを防ぐために、データ保持期間は連休などを加味して十分に長い日数を設定しておくとよいでしょう。
検証ログ
今回の検証で使用したCIHの構成は以下の通りです。
パブリケーションはS3→データハブ(プライベートリポジトリ)、サブスクリプションはデータハブ→S3としています。
検証のためコンシュームされるデータの保持期間
・コンシュームされないデータの保持期間
を1日に設定しました。
前者がサブスクリプションすべてからコンシュームされたデータの保持期間を、後者がサブスクリプションすべてからコンシュームされていないデータの保持期間となります。
今回はサブスクリプション「sub_watanabe_02」をエラーになるように設定しています。
まず以下のようなデータをパブリケーションからハブに連携しました。
今回は2つのサブスクリプションのうち1つがエラーとなるようにしていますが、1日以内なら再実行で問題なくデータ再取得が可能です。
しかし翌日にサブスクリプションを実行してみると、コンシュームするデータがありません。
とのことで、データ取得ができなくなりました。
実はこのときには、ハブ自体にはデータはまだ存在していました。
社内環境なので節約のためにSecureAgentをインストールしているEC2・DBを停止させていたため、自動削除が実行されませんでした。
ここから言えることはデータがまだハブに残っていたとしても、CIHの差分取得機能ではデータ保持期間を超えたデータは連携されないようになっているようです。
以前のパブリケーションの取得
を選択すると、任意の日時範囲のパブリケーションデータを取得できるのですが、データ保持期間を超えてしまうと、以下のようなエラーが出力されて、サブスクリプションの再実行ができませんでした。
実際にEC2・DBを起動させた状態でいると、システム(CIH)によるデータの自動削除が成功しました。
このイベントのメンテナンスレポートを確認してみると、Deleted Publications That Ran Prior To Date(日付より前に発行されたパブリケーションの削除)
が表示されています。
今回の自動削除は2024/11/30の8時ごろに起きましたが、削除されたのは11/28(UTC)より前のデータのようです。
実際にハブのリポジトリに使用しているRDS for MySQLのパラメータグループでgeneral_log
を有効にして、クエリを確認してみました。
DELETE FROM cih_pv_repository.TEST_WAT__TOP_WA_Z89DV739VOE97 WHERE DIH__PUBLICATION_INSTANCE_DATE < '2024-11-28 09:00:00'
上記のようなDELETE文が発行されていました。
どうやら日本時間だと9:00前にパブリッシュされたデータが削除されるようです。
まとめ
はじめの結論のとおり、データの保持期間については余裕を持った設定をすると良いでしょう。
もちろんデータ連携方法によっても保持期間の選択については変わるところではありますが、CIHの思想としてはパブリケーションのデータを複数のサブスクリプションが任意に取得をするというPub/Subなので、サブスクリプションがコンシュームする前にデータが消えてしまうと再連携が難しくなります。
個別のサブスクリプションのためにデータ連携をしなければなりません。
そのためデータの保持期間には余裕を持たせて、なるべく障害が発生しても簡単にリカバリできるようにしていきたいところです。
以上、ご参考になれば幸いです。